<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数据代理</title>
</head>
<body>
   <!-- (1)数据代理：通过一个对象对另一个对象数据的操作(读/写) -->
   <script>
      let obj1 = {
         x : 100
      }
      let obj2 = {
         y : 200
      }
      // (2)通过Object.defineproperty重写get、set方法来实现代理
      // (3)有个很关键的点：这个是定义属性，就是说原本没有这个属性
      Object.defineProperty(obj2,'x',{
         get(){
            return obj1.x
         },
         set(value){
            obj1.x = value
         }
      })
   </script>
</body>
</html>